﻿using System;
using Model.Block;

namespace BehaviorModel.Block
{
    /// <summary>
    /// Block types.
    /// </summary>
    public enum BlockType
    {
        Generator,
        ServiceChannel,
        Summator,
        Splitter
    }

    /// <summary>
    /// Describes blocks behavior.
    /// </summary>
    public interface IBlock
    {
        /// <summary>
        /// Unique identifier.
        /// </summary>
        Guid Id { get; }

        /// <summary>
        /// Type of block.
        /// </summary>
        BlockType Type { get; }

        /// <summary>
        /// Block initialization. 
        /// Invoked when new block added to canvas.
        /// </summary>
        void Initialize();
    }
}
